Beamforming using base and differential codebooks

ABSTRACT

Embodiments of methods and apparatus for determining and/or quantizing a beamforming matrix are disclosed. In some embodiments, the determining and/or quantizing of the beamforming matrix may include the use of a base codebook and a differential codebook. Additional variants and embodiments are also disclosed.

CROSS REFERENCE TO RELATED APPLICATIONS

The present application is a continuation of U.S. patent application Ser. No. 12/639,640 filed Dec. 16, 2009, entitled, “Beamforming Using Base And Differential Codebooks,” which claims priority to U.S. Provisional Patent Application No. 61/223,360 filed Jul. 6, 2009, entitled, “Advanced Wireless Communication Systems and Techniques,” the entire specification of which is hereby incorporated by reference in its entirety for all purposes, except for those sections, if any, that are inconsistent with this specification.

TECHNICAL FIELD

Embodiments of the present disclosure relate generally to wireless communication systems, and more particularly, to methods and apparatuses for beamforming using a base codebook and a differential codebook.

BACKGROUND

A mobile station in a closed-loop multi input and/or multi output (MIMO) system generally transmits channel state information to a base station over a feedback path. The channel state information is used to employ beamforming at the base station, to compensate for the current channel conditions. In some of the conventional systems, the mobile station transmits a channel covariance matrix to the base station, from which the base station determines a beamforming matrix that is used to employ beamforming at the base station. In some other conventional systems, a beamforming matrix is generated at the mobile station based on the channel conditions. The generated beamforming matrix is then provided to the base station as feedback. However, transmitting the channel covariance matrix and/or the beamforming matrix from the mobile station to the base station may consume relatively high bandwidth that might otherwise be available for data traffic.

BRIEF DESCRIPTION OF THE DRAWINGS

Embodiments of the invention will be described by way of exemplary embodiments, but not limitations, illustrated in the accompanying drawings in which like references denote similar elements, and in which:

FIG. 1 schematically illustrates a MIMO system;

FIG. 2 illustrates an exemplary method for determination and quantization of a beamforming matrix;

FIG. 3 illustrates an exemplary method for estimating a beamforming matrix based on feedback received from a mobile station; and

FIG. 4 illustrates an example system capable of implementing a communication device, all in accordance with various embodiments of the present disclosure.

DETAILED DESCRIPTION

Illustrative embodiments of the invention include, but are not limited to, methods and apparatuses for generating and/or estimating a beamforming matrix using a base codebook and a differential codebook.

Various aspects of the illustrative embodiments will be described using terms commonly employed by those skilled in the art to convey the substance of their work to others skilled in the art. However, it will be apparent to those skilled in the art that alternate embodiments may be practiced with only some of the described aspects. For purposes of explanation, specific numbers, materials, and configurations are set forth in order to provide a thorough understanding of the illustrative embodiments. However, it will be apparent to one skilled in the art that alternate embodiments may be practiced without the specific details. In other instances, well-known features are omitted or simplified in order not to obscure the illustrative embodiments.

Further, various operations will be described as multiple discrete operations, in turn, in a manner that is most helpful in understanding the illustrative embodiments; however, the order of description should not be construed as to imply that these operations are necessarily order dependent. In particular, these operations need not be performed in the order of presentation.

The phrase “in some embodiments” is used repeatedly. The phrase generally does not refer to the same embodiments; however, it may. The terms “comprising,” “having,” and “including” are synonymous, unless the context dictates otherwise. The phrase “A and/or B” means (A), (B), or (A and B). The phrase “A/B” means (A), (B), or (A and B), similar to the phrase “A and/or B”. The phrase “at least one of A, B and C” means (A), (B), (C), (A and B), (A and C), (B and C) or (A, B and C). The phrase “(A) B” means (B) or (A and B), that is, A is optional.

Although specific embodiments have been illustrated and described herein, it will be appreciated by those of ordinary skill in the art that a wide variety of alternate and/or equivalent implementations may be substituted for the specific embodiments shown and described, without departing from the scope of the embodiments of the invention. This application is intended to cover any adaptations or variations of the embodiments discussed herein. Therefore, it is manifestly intended that the embodiments of the invention be limited only by the claims and the equivalents thereof.

For the purpose of this disclosure and unless otherwise mentioned, a conjugate transpose of an m by n matrix A with possibly complex entries is an n by m matrix, represented by A*, obtained by taking the transpose of the matrix A, and then taking the complex conjugate of each entry of the matrix formed by taking the transpose of the matrix A. For the purpose of this disclosure and unless otherwise mentioned, a unitary matrix is an n by n complex matrix B satisfying the condition (B*)B=B(B*)=I_(n), where I_(n) is the identity matrix in n dimensions, and B* is the conjugate transpose of B. Thus, a matrix B is unitary if and only if B has an inverse, wherein the inverse of B is equal to the conjugate transpose of B. For the purpose of this disclosure and unless otherwise mentioned, two vectors are orthogonal if the two vectors are perpendicular to each other (e.g., the two vectors form a right angle, the dot product of the two vectors is 0). For the purpose of this disclosure and unless otherwise mentioned, a hermitian matrix C is a square matrix with possible complex entries, each of which is equal to its own conjugate transpose (e.g., the element in the i^(th) row and j^(th) column of matrix C is equal to the complex conjugate of the element in the j^(th) row and i^(th) column of matrix C, for all indices i and j). Thus, if a matrix C is a hermitian matrix, then C*=C. For the purpose of this disclosure and unless otherwise mentioned, for an m by n matrix M, a singular value decomposition of matrix M refers to a factorization of the form M=EΛF*, where E is an m by m unitary matrix, Λ is a m by n diagonal matrix with nonnegative real numbers on its diagonal, and F* denotes the conjugate transpose of matrix F, where matrix F is an n by n unitary matrix.

Embodiments of the present disclosure may be used in wireless access networks that employ orthogonal frequency division multiple access (OFDMA) communications as used by multicarrier transmission schemes presented in, e.g., the Institute of Electrical and Electronics Engineers (IEEE) 802.16-2009, approved May 13, 2009, along with any amendments, updates, and/or revisions (e.g., 802.16m, which is presently at predraft stage), 3rd Generation Partnership Project (3GPP) long-term evolution (LTE) project, ultra mobile broadband (UMB) project (also referred to as “3GPP2”), etc. In other embodiments, communications may be compatible with additional/alternative communication standards and/or specifications.

FIG. 1 schematically illustrates a communication system 100, in accordance with various embodiments of the present disclosure. In various embodiments, the communication system 100 includes a base station 104 that communicates with a mobile station 140 over wireless channel 130. In various embodiments, the base station 104 and/or the mobile station 140 may be MIMO devices. In various embodiments, the communication system 100 may be a closed-loop system that employs beamforming to increase a signal to noise ratio (SNR) of signals transmitted by base station 104 to mobile station 140.

In various embodiments, the base station 104 may transmit one or more data streams to the mobile station 140. For example, FIG. 1 illustrates a data stream S1 being transmitted by the base station 104 to the mobile station 140, although in various other embodiments, any other suitable number of data streams may also be provided. Prior to transmission, the data stream S1 may be appropriately weighted by one or more components of the base station 104 as discussed hereinafter.

In various embodiments, the base station 104 may include a beamformer module 112 to weight data signals (e.g., data signals of data stream S1) by a beamforming matrix. The term beamforming is used herein to describe the application of beamforming coefficients or weights to frequency-domain signals in the data stream(s), prior to transmission. In various embodiments, the beamforming coefficients or weights may be determined from the beamforming matrix.

Base station 104 may comprise a plurality of transmit antennas 108 a, 108 b, 108 c and 108 d, to transmit the weighted data stream. In FIG. 1, four transmit antennas are illustrated, although in various other embodiments, any other suitable number of transmit antennas may be included in the base station 104.

The base station 104 may also include one or more receive antennas (e.g., receive antenna 110) that may receive, among other information, feedback about the channel condition from the mobile station 140.

In various embodiments, the base station 104 may also include a beamforming matrix estimation module 116, which may be configured to estimate the beamforming matrix, based at least in part on feedback received from the mobile station 140.

An order (e.g., number of rows and/or columns) of the beamforming matrix may be based on a number of data stream(s) transmitted by the base station 104 and a number of transmit antennas included in the base station 104. In various embodiments, the beamforming matrix may be of order N_(t) by N_(s), where N_(t) and N_(s) are the number of transmit antennas and the number of data stream(s), respectively, of the base station 104. For example, in FIG. 1, N_(t) is 4 (as there are four transmit antennas 108 a, 108 b, 108 c and 108 d) and N_(s) is 1 (as there is one data stream S1), and hence, a beamforming matrix B is a 4 by 1 vector. In various embodiments, the signal transmitted by the base station 104 may be represented by x=B.S,   Equation (1) where S represents N_(s) data stream(s) (e.g., data stream S1 of FIG. 1) of the base station 104, B is the N_(t) by N_(s) beamforming matrix determined by the beamforming matrix estimation module 116, and x is an N_(t) by 1 vector corresponding to the weighted data signals transmitted by the four transmit antennas 108 a, 108 b, 108 c and 108 d.

In various embodiments, the base station 104 may include at least as many transmit antennas as the number of data stream(s) being transmitted by base station 104, although the scope of this disclosure may not be limited in this respect. In these embodiments, N_(t) is at least as high as N.

Referring again to FIG. 1, in various embodiments, the mobile station 140 may include one or more receive antennas, e.g., receive antennas 144 a and 144 b, configured to receive signals transmitted through channel 130 by the base station 104. In FIG. 1, two receive antennas are illustrated, although in various other embodiments, any other suitable number of receive antennas may be used. In various embodiments, the mobile station 140 may include at least as many receive antennas as the number of data stream(s) being transmitted by base station 104, although the scope of this disclosure may not be limited in this respect.

In various embodiments, the mobile station 140 may also include a channel estimation module 148 to estimate channel conditions of the channel 130, based at least in part on signals received from one or more of the transmit antennas 108 a, . . . , 108 d. For example, the channel estimation module 148 may determine a channel matrix H which describes the current state of channel 130. In various embodiments, the channel matrix H may be indicative of conditions of sub-channels between each of the transmit antennas 108 a, . . . , 108 d and each of the receive antennas 144 a and 144 b. In various embodiments, the channel matrix H may be of the order N_(r) by N_(t), where N_(r) may be a number of receive antennas in the mobile station 140. FIG. 1 illustrates four transmit antennas 108 a, . . . , 108 d (i.e., N_(t)=4) of the base station 104 and two receive antennas 144 a and 144 b (i.e., N_(r)=2) of the mobile station 140, and accordingly, the channel matrix H may be a 2 by 4 matrix for the MIMO system 100.

The channel estimation module 148 may also construct a channel covariance matrix R from the channel matrix H. For example, the channel covariance matrix R may be equal to R=E[(H*)H],   Equation (2) wherein H* is the conjugate transpose of the channel matrix H, and E[ ] is an expectation operation. In various embodiments, the channel matrix H may be representative of an instantaneous condition of the channel 130, whereas the channel covariance matrix R may be representative of relatively long-term statistics of the channel 130. Thus, the channel matrix H may change faster over time and frequency as compared to the channel covariance matrix R. In various embodiments, the channel covariance matrix R may be a Hermitian matrix of order N_(t) by N_(t), where N_(t) (e.g., the number of transmit antennas of the base station 104) is 4 for the MIMO system 100.

In various embodiments, the mobile station 140 may also include a matrix decomposition module 152 configured to decompose the channel covariance matrix R using, for example, singular value decomposition. Singular value decomposition of a matrix refers to factorizing the matrix in three different matrices. For example, the singular value decomposition of the channel covariance matrix R may be of the form: R=UΛV*,   Equation (3) where U is an unitary square matrix of order N_(t), Λ is a N_(t) by N_(t) diagonal matrix with nonnegative real numbers on its diagonal, and V* is the conjugate transpose of an unitary square matrix V of order N_(t). In various embodiments, the columns of matrix V may be the eigenvectors of matrix (R*)R, and the diagonal values in matrix Λ may be the singular values of R.

In various embodiments, the matrix V may include the beamforming matrix, and the part of the matrix V that represents the beamforming matrix may be represented by V_(b). For example, as previously discussed, for a single data stream (e.g., N_(s)=1) and four transmit antennas (e.g., N_(t)=4) of the base station 104 (e.g., as illustrated in FIG. 1), the beamforming matrix is a 4 by 1 vector. In this case, the matrix V is a 4 by 4 square matrix, and the first column of V (e.g., the principal eigenvector of matrix (R*)R) may form the beamforming matrix V_(b). That is, in this case, the beamforming matrix V_(b) may consist of the first column of the matrix V.

In another example (not illustrated in FIG. 1), for two data streams (e.g., N_(s)=2) and four transmit antennas (e.g., N_(t)=4) of the base station 104, the matrix V is a 4 by 4 square matrix and the beamforming matrix V_(b) is a 4 by 2 matrix. In this case, the first two columns of V (e.g., two eigenvectors of matrix (R*)R) may form the beamforming matrix V_(b).

In various embodiments, the mobile station 140 may also include a quantization module 156. Once the beamforming matrix V_(b) is generated from the matrix V, the quantization module 156 may quantize the beamforming matrix V_(b) using a base codebook C_(b). In these embodiments, the base codebook C_(b) may be used to populate the surface of a manifold to efficiently encode or quantize the beamforming matrix. The base codebook C_(b) may include a plurality of candidate matrices, each having dimensions similar to the beamforming matrix V_(b). A candidate matrix, among the plurality of candidate matrices, that best matches the beamforming matrix V_(b) may be selected from the base codebook C_(b), and a codeword corresponding to the selected candidate matrix may be feedback by the mobile station 140 to the base station 104. Here, the selected candidate matrix may be representative of the beamforming matrix V_(b) (e.g., the selected candidate matrix may be a quantized version of the beamforming matrix V_(b)), and the selected candidate matrix may be referred herein as quantized beamforming matrix.

For example, referring again to FIG. 1, the quantization module 156 may quantize the beamforming matrix V_(b) as follows:

$\begin{matrix} {{\hat{V} = {\underset{V\; i\;\varepsilon\; C_{b}}{a\; r\; g\;\max}{{V_{b}^{*}V_{i}}}_{F}}},} & {{Equation}\mspace{14mu}(4)} \end{matrix}$ where {circumflex over (V)} is the quantized beamforming matrix, C_(b) is the base codebook, Vi represents the candidate matrices in the base codebook C_(b), V*_(b) is a complex conjugate of the beamforming matrix V_(b), and ∥ ∥_(F) is the Frobenius-norm operation. Although Frobenius-norm is used in equation 4, in various other embodiments, any other appropriate matrix norm or vector norm (e.g., the spectral norm, the Euclidean norm, or the like) may also be used. Equation 4 selects, from among the plurality of candidate matrices included in the base codebook C_(b), the quantized beamforming matrix {circumflex over (V)} that is best representative of the beamforming matrix V_(b).

In various embodiments, although quantized beamforming matrix {circumflex over (V)} is representative of the beamforming matrix V_(b), there may be possible quantization error (e.g., difference between the quantized beamforming matrix {circumflex over (V)} and the beamforming matrix V_(b)) when the quantized beamforming matrix {circumflex over (V)} is selected from the base codebook C_(b). The quantization error may be based on several factors including, but not limited to, a number of candidate matrices included in the base codebook C_(b) and how closely the beamforming matrix V_(b) matches the selected candidate matrix (e.g., the quantized beamforming matrix {circumflex over (V)}) from the base codebook C_(b).

In various embodiments, to reduce this quantization error, the mobile station 140 may determine a difference matrix that is representative of a difference between the beamforming matrix V_(b) and the quantized beamforming matrix {circumflex over (V)}. For example, a difference matrix D may be formed such that D=[{circumflex over (V)} {circumflex over (V)} ^(⊥) ]*V _(b),   Equation (5) wherein [{circumflex over (V)} {circumflex over (V)}^(⊥)]* is the conjugate transpose of N_(t) by N_(t) matrix [{circumflex over (V)} {circumflex over (V)}^(⊥)]. Also, {circumflex over (V)}^(⊥) may be a matrix that includes columns that are orthogonal to the columns of the quantized beamforming matrix {circumflex over (V)}, and the order of the matrix {circumflex over (V)}^(⊥) may be N_(t) by (N_(t)−_(s)). For example, for N_(s)=1 and N_(t)=4, {circumflex over (V)} is a 4 by 1 vector, and {circumflex over (V)}^(⊥) may be a 4 by 3 matrix that is selected such that each of the columns of {circumflex over (V)}^(⊥) are orthogonal to the vector {circumflex over (V)}. In another example, for N_(s)=2 and N_(t)=4, {circumflex over (V)} is a 4 by 2 matrix, and {circumflex over (V)}^(⊥) may be a 4 by 2 matrix that is selected such that each of the columns of {circumflex over (V)}^(⊥) are orthogonal to each of the columns of the matrix {circumflex over (V)}. In various embodiments, {circumflex over (V)}^(⊥) may be selected such that [{circumflex over (V)} {circumflex over (V)}^(⊥)] is a unitary matrix. In various embodiments, the difference matrix D and/or the matrix {circumflex over (V)}^(⊥) may be calculated by, for example, a householder reflection operation on the quantized beamforming matrix {circumflex over (V)}. The difference matrix D may be representative of the difference between the beamforming matrix V_(b) and the matrix {circumflex over (V)}.

In various embodiments, the difference matrix D may be quantized using a differential codebook C_(d). The differential codebook C_(d) may include a plurality of candidate matrices, each having dimensions similar to the difference matrix D. For example, referring again to FIG. 1, the quantization module 156 may quantize the difference matrix D as follows:

$\begin{matrix} {{\hat{D} = {\underset{D_{i}\;\varepsilon\; C_{d}}{a\; r\; g\;\max}{{D^{*}D_{i}}}_{F}}},} & {{Equation}\mspace{14mu}(6)} \end{matrix}$ where the quantized difference matrix {circumflex over (D)} is a quantization of the difference matrix D, C_(d) is the differential codebook, Di represents the candidate matrices in the differential codebook C_(d), and ∥ ∥_(F) is the Frobenius-norm operation. Although Frobenius-norm is used in equation 6, in various other embodiments, any other appropriate matrix norm or vector norm may also be used. Equation 6 selects, from the differential codebook C_(d), a candidate matrix {circumflex over (D)} that is best representative of the difference matrix D.

In various embodiments, the mobile station 140 may transmit, by way of the transmit antenna 160, a first codeword and a second codeword to the base station 104. In various embodiments, the first codeword (e.g., from the base codebook C_(b)) may be associated with the quantized beamforming matrix {circumflex over (V)} and the second codeword (e.g., from the differential codebook C_(d)) may be associated with the quantized difference matrix {circumflex over (D)}. The mobile station 140 may transmit the first codeword and the second codeword to the base station 104 (e.g., instead of sending the actual matrices {circumflex over (V)} and {circumflex over (D)}), to enable the base station 104 to estimate the beamforming matrix V_(b) from the transmitted first and second codewords.

For example, if the quantized beamforming matrix {circumflex over (V)} is an n^(th) matrix of the plurality of candidate matrices in the base codebook C_(b) and if the quantized difference matrix {circumflex over (D)} is a m^(th) matrix of the plurality of the candidate matrices in the differential codebook C_(d), then the numbers n and m may be the first and second codewords, respectively. In various other embodiments, codewords associated with the quantized beamforming matrix {circumflex over (V)} and/or the quantized difference matrix {circumflex over (D)} may be formed in any other appropriate manner as well.

In various embodiments, once the base station 104 receives the first and second codewords from the mobile station 140, the base station 104 may determine, from the received first and second codewords, the matrices {circumflex over (D)} and {circumflex over (V)}, respectively, using saved copies of the base codebook C_(b) and differential codebook C_(d). In various other embodiments, the base station 104 may determine, from the received codewords, the matrices {circumflex over (D)} and {circumflex over (V)} in any other appropriate manner as well.

Once the base station 104 determines the matrices {circumflex over (D)} and {circumflex over (V)}, the beamforming matrix estimation module 116 in the base station 104 may estimate the original beamforming matrix V_(b). For example, the beamforming matrix estimation module 116 may generate the matrix {circumflex over (V)}⁻ from the determined matrix {circumflex over (V)}. Subsequently, the beamforming matrix estimation module 116 may determine an estimated beamforming matrix {circumflex over (V)}_(b) as follows: {circumflex over (V)}_(b)=[{circumflex over (V)} {circumflex over (V)}^(⊥)]{circumflex over (D)}.   Equation (7)

Thus, the estimated beamforming matrix {circumflex over (V)}_(b) may be an estimate of the original beamforming matrix V_(b). In various embodiments, the base station 104 (e.g., the beamformer module 112) may weight data stream(s) (e.g., as discussed with respect to equation 1) with the estimated beamforming matrix {circumflex over (V)}_(b), and the transmit antennas 108 a, . . . , 108 d of the base station 104 may transmit the weighted data stream(s).

FIG. 2 illustrates an exemplary method 200 for determination and quantization of a beamforming matrix, in accordance with various embodiments of the present invention. One or more operations of the method 200 may be carried by one or more modules of the mobile station 140. Referring to FIGS. 1 and 2, in various embodiments, the method 200 includes, at 204 (“Determining a channel covariance matrix R”), determining, e.g., by the channel estimation module 148 of the mobile station 140, a channel covariance matrix R based on signals received from the base station 104. In various embodiments, the channel covariance matrix R may be formed from the channel matrix H, as discussed with respect to equation 2. As previously discussed, the channel matrix H may be representative of conditions of sub-channels between one or more transmit antennas 108 a, . . . 108 d of the base station 104 and one or more receive antennas 144 a, 144 b of the mobile station 140.

The method 200 may further include, at 208 (“Decomposing the channel covariance matrix”), decomposing, e.g., by the matrix decomposition module 152 of the mobile station 140, the channel covariance matrix R into a left matrix U, a diagonal matrix Λ, and a complex conjugate of a right matrix V using singular value decomposition, as previously discussed with respect to equation 3.

The method 200 may further include, at 212 (“Determining beamforming matrix Vb”), determining, e.g., by the matrix decomposition module 152 of the mobile station 140, the beamforming matrix V_(b) such that the beamforming matrix V_(b) comprises one or more columns of the right matrix V. In various embodiments, the beamforming matrix V_(b) may comprise the first N_(s) number of columns of the right matrix V.

The method 200 may further include, at 216 (“Selecting a quantized beamforming matrix”), selecting, e.g., by the quantization module 156 of the mobile station 140, a quantized beamforming matrix {circumflex over (V)} from a first plurality of candidate matrices included in base codebook C_(b), where the quantized beamforming matrix {circumflex over (V)} may be representative of the beamforming matrix V_(b). The quantized beamforming matrix {circumflex over (V)} may be selected such that the quantized beamforming matrix {circumflex over (V)}, among the first plurality of candidate matrices in the base codebook C_(b), maximizes a Frobenius norm of a product of a complex conjugate of the beamforming matrix and the quantized beamforming matrix {circumflex over (V)}, as discussed with respect to equation 4.

The method 200 may further include, at 220 (“Determining a difference matrix”), determining, e.g., by the quantization module 156 of the mobile station 140, a difference matrix D that is representative of a difference between the beamforming matrix V_(b) and the quantized beamforming matrix {circumflex over (V)}, as discussed with respect to equation 5. For example, to determine the difference matrix D, matrix {circumflex over (V)}^(⊥) may be formed (e.g., using householder reflection on the quantized beamforming matrix {circumflex over (V)}) based at least in part on the quantized beamforming matrix {circumflex over (V)}, such that each of one or more columns of the matrix {circumflex over (V)}^(⊥) is orthogonal to each of one or more columns of the quantized beamforming matrix {circumflex over (V)}. Subsequently, matrix [{circumflex over (V)} {circumflex over (V)}^(⊥)] may be formed, which may be a combination of the quantized beamforming matrix {circumflex over (V)} and the matrix {circumflex over (V)}^(⊥). In various embodiments, the matrix {circumflex over (V)}^(⊥) may be formed such that the matrix [{circumflex over (V)} {circumflex over (V)}^(⊥)] is an unitary matrix having an order that is equal to a number of rows of the beamforming matrix V_(b). The difference matrix D may be determined such that the difference matrix D is a product of a complex conjugate of the matrix [{circumflex over (V)} {circumflex over (V)}^(⊥)] and the beamforming matrix V_(b), as discussed with respect to equation 5.

The method 200 may further include, at 224 (“Selecting a quantized beamforming matrix”), selecting, e.g., by the quantization module 156 of the mobile station 140, a quantized difference matrix {circumflex over (D)} from a second plurality of candidate matrices included in differential codebook C_(d), where the quantized difference matrix {circumflex over (D)} may be representative of the difference matrix D. The quantized difference matrix {circumflex over (D)} may be selected such that the quantized difference matrix {circumflex over (D)}, among all the second plurality of candidate matrices in the difference codebook C_(d), maximizes a Frobenius norm of a product of a complex conjugate of the difference matrix and the quantized difference matrix {circumflex over (D)}, as discussed with respect to equation 6.

The method 200 may further include, at 228 (“Transmitting a first codeword and a second codeword”), transmitting, e.g., by the transmit antenna 160 of the mobile station 140, to the base station 104, a first codeword and a second codeword associated with the quantized beamforming matrix and the quantized difference matrix, respectively, as previously discussed.

FIG. 3 illustrates an exemplary method 300 for estimating, by base station 104, the beamforming matrix based on feedback received from the mobile station 140, in accordance with various embodiments of the present invention. One or more operations of the method 300 may be carried by one or more modules of the base station 104. Referring to FIGS. 1 and 3, in various embodiments, the method 300 includes, at 304 (“Receiving a first codeword and a second codeword”), receiving, e.g., by the receive antenna 110, from the mobile station 140, e.g., from the transmit antenna 160, a first codeword and a second codeword associated with the quantized beamforming matrix {circumflex over (V)} and the quantized difference matrix {circumflex over (D)}, respectively.

The method 300 may further include, at 308 (“Determining the quantized beamforming matrix and the quantized difference matrix”), determining, e.g., by the beamforming matrix estimation module 116, the quantized beamforming matrix {circumflex over (V)} and the quantized difference matrix {circumflex over (D)} based at least in part on the received first codeword and the second codeword, respectively.

The method 300 may further include, at 312 (“Estimating a beamforming matrix”), estimating, e.g., by the beamforming matrix estimation module 116, the beamforming matrix (e.g., the estimated beamforming matrix {circumflex over (V)}_(b)) from the determined quantized beamforming matrix {circumflex over (V)} and the quantized difference matrix {circumflex over (D)}, as discussed with respect to equation 7.

The method 300 may further include, at 316 (“Weighing one or more data streams”), weighing, e.g., by the beamformer module 112, one or more data streams (e.g., data stream S1) using the estimated beamforming matrix {circumflex over (V)}_(b). The method 300 may further include, at 320 (“Transmitting the weighed data streams”), transmitting, e.g. by one or more transmit antennas (e.g., transmit antennas 108 a, . . . , 108 d) of the base station 104, the weighed data stream(s) to the mobile station 140.

Quantizing the beamforming matrix using two codebooks C_(b) and C_(d) has several advantages relative to quantizing a beamforming matrix using a single codebook. For example, quantizing the beamforming matrix into the quantized beamforming matrix {circumflex over (V)} and the quantized difference matrix {circumflex over (D)} may reduce a quantization error. Accordingly, the estimation of the beamforming matrix, formed at the base station 104, may be more accurate.

In various embodiments discussed so far, a base codebook and a differential codebook is used to quantize the beamforming matrix. However, in various embodiments, more than one differential codebook may also be used. For example, once the difference matrix D and the quantized difference matrix {circumflex over (D)} are generated, a second difference matrix may be generated (e.g., using an equation that is at least in part similar to equation 5), which may be representative of a difference between the difference matrix D and the quantized difference matrix {circumflex over (D)}. The second difference matrix may then be quantized using a second differential codebook to generate a second quantized difference matrix. The mobile station 140 may transmit, to the base station 104, a codeword corresponding to the second quantized difference matrix, in addition to transmitting codewords corresponding to the quantized beamforming matrix and the quantized difference matrix. The base station 104 may estimate the beamforming matrix {circumflex over (V)}_(b) using codewords corresponding to the quantized beamforming matrix, the quantized difference matrix, and the second quantized difference matrix.

In the embodiments discussed so far, quantized form of the beamforming matrix (which includes the quantized beamforming matrix {circumflex over (V)} and the quantized difference matrix {circumflex over (D)}) is transmitted by the mobile station 140 to the base station 104. In various embodiments, the mobile station 140 may also transmit a quantized form of the channel covariance matrix R (e.g., instead of or in addition to transmitting the quantized form of the beamforming matrix) to the base station 104, to enable the base station 104 to reconstruct or estimate the channel covariance matrix and subsequently determine the beamforming matrix by decomposing the estimated channel covariance matrix. For example, the mobile station 140 may quantize the channel covariance matrix R (e.g., obtained from equation 2) using a base codebook (using a method that is at least in part similar to equation 4) to obtain a quantized channel covariance matrix. The mobile station 140 may then calculate a corresponding difference matrix (using a method that is at least in part similar to equation 5) that is representative of a difference between the channel covariance matrix and the quantized channel covariance matrix. The mobile station 140 may quantize the corresponding difference matrix using a differential codebook (using a method that is at least in part similar to equation 6) to obtain a corresponding quantized difference matrix. The mobile station 140 may transmit codewords corresponding to the generated quantized matrices to the base station 104, from which the base station 104 may estimate the channel covariance matrix. The base station 104 may then estimate the beamforming matrix by decomposing (e.g., using singular value decomposition) the estimated channel covariance matrix.

The communication devices described herein may be implemented into a system using any suitable hardware and/or software to configure as desired. FIG. 4 illustrates, for one embodiment, an example system 400 comprising one or more processor(s) 404, system control logic 408 coupled to at least one of the processor(s) 404, system memory 412 coupled to system control logic 408, non-volatile memory (NVM)/storage 416 coupled to system control logic 408, and one or more communications interface(s) 420 coupled to system control logic 408.

System control logic 408 for one embodiment may include any suitable interface controllers to provide for any suitable interface to at least one of the processor(s) 404 and/or to any suitable device or component in communication with system control logic 408.

System control logic 408 for one embodiment may include one or more memory controller(s) to provide an interface to system memory 412. System memory 412 may be used to load and store data and/or instructions, for example, for system 400. System memory 412 for one embodiment may include any suitable volatile memory, such as suitable dynamic random access memory (DRAM), for example.

System control logic 408 for one embodiment may include one or more input/output (I/O) controller(s) to provide an interface to NVM/storage 416 and communications interface(s) 420.

NVM/storage 416 may be used to store data and/or instructions, for example. NVM/storage 416 may include any suitable non-volatile memory, such as flash memory, for example, and/or may include any suitable non-volatile storage device(s), such as one or more hard disk drive(s) (HDD(s)), one or more compact disc (CD) drive(s), and/or one or more digital versatile disc (DVD) drive(s) for example.

The NVM/storage 416 may include a storage resource physically part of a device on which the system 400 is installed or it may be accessible by, but not necessarily a part of, the device. For example, the NVM/storage 416 may be accessed over a network via the communications interface(s) 420.

System memory 412 and NVM/storage 416 may include, in particular, temporal and persistent copies of beamforming matrix logic 424, respectively. In various embodiments, the system 400 may be a part of the mobile station 140, and the beamforming matrix logic 424 may include instructions that when executed by at least one of the processor(s) 404 result in the system 400 generating a beamforming matrix and/or quantizing the beamforming matrix (e.g., using a base codebook and a differential codebook), as described herein. In various other embodiments, the system 400 may be a part of the base station 104, and the beamforming matrix logic 424 may include instructions that when executed by at least one of the processor(s) 404 result in the system 400 estimating a beamforming matrix from received codewords (e.g., corewords corresponding to the beamforming matrix) of the base codebook and the differential codebook, as described herein.

In some embodiments, the beamforming matrix logic 424 may additionally (or alternatively) be located in the system control logic 408.

Communications interface(s) 420 may provide an interface for system 400 to communicate over one or more network(s) and/or with any other suitable device. Communications interface(s) 420 may include any suitable hardware and/or firmware. Communications interface(s) 420 for one embodiment may include, for example, a network adapter, a wireless network adapter, a telephone modem, and/or a wireless modem. For wireless communications, communications interface(s) 420 for one embodiment may use one or more antennae.

For one embodiment, at least one of the processor(s) 404 may be packaged together with logic for one or more controller(s) of system control logic 408. For one embodiment, at least one of the processor(s) 404 may be packaged together with logic for one or more controllers of system control logic 408 to form a System in Package (SiP). For one embodiment, at least one of the processor(s) 404 may be integrated on the same die with logic for one or more controller(s) of system control logic 408. For one embodiment, at least one of the processor(s) 404 may be integrated on the same die with logic for one or more controller(s) of system control logic 408 to form a System on Chip (SoC).

In various embodiments, system 400 may have more or less components, and/or different architectures.

Although certain example methods, apparatus, and articles of manufacture have been described herein, the scope of coverage of this disclosure is not limited thereto. On the contrary, this disclosure covers all methods, apparatus, and articles of manufacture fairly falling within the scope of the appended claims either literally or under the doctrine of equivalents. For example, although the above discloses example systems including, among other components, software or firmware executed on hardware, it should be noted that such systems are merely illustrative and should not be considered as limiting. In particular, it is contemplated that any or all of the disclosed hardware, software, and/or firmware components could be embodied exclusively in hardware, exclusively in software, exclusively in firmware or in some combination of hardware, software, and/or firmware. 

What is claimed is:
 1. One or more non-transitory computer-readable media having instructions that, when executed by one or more processors, cause a base station to: process a feedback transmission from a mobile station to determine first and second codebook indices; and determine a beamforming matrix, based on the first and second codebook indices, to facilitate formation of a beam to transmit data to the mobile station in one or more streams, wherein the first codebook index is associated with a first quantization error, the second codebook index is associated with a second quantization error, and the second quantization error is less than the first quantization error, and wherein the instructions, when executed, further cause the base station to: determine a first beamforming matrix component based on the first codebook index; determine a second beamforming matrix component based on the second codebook index; and determine the beamforming matrix based on the first and second beamforming matrix components.
 2. The one or more computer-readable media of claim 1, wherein the instructions, when executed, further cause the base station to: apply beamforming coefficients to frequency-domain signals in the one or more streams based on the determined beamforming matrix.
 3. The one or more computer-readable media of claim 1, wherein the instructions, when executed, further cause the base station to: transmit the one or more streams by a plurality of antennas of the base station.
 4. The one or more computer-readable media of claim 3, wherein the beamforming matrix includes a plurality of rows that respectively correspond with the plurality of antennas.
 5. The one or more computer-readable media of claim 1, wherein the feedback transmission includes an indication of the first codebook index and an indication of the second codebook index.
 6. An apparatus to be employed in a base station, the apparatus comprising: first circuitry to: receive, in a feedback transmission from a mobile station, an indication of first and second codebook indices; and determine a beamforming matrix based on the first and second codebook indices; and second circuitry to: weight signals of a data stream to be transmitted to the mobile station based on the beamforming matrix, wherein the first codebook index is associated with a first quantization error, the second codebook index is associated with a second quantization error, the second quantization error is less than the first quantization error, and the first circuitry is further to determine a first beamforming matrix component based on the first codebook index; determine a second beamforming matrix component based on the second codebook index; and determine the beamforming matrix based on the first and second beamforming matrix components.
 7. The apparatus of claim 6, further comprising: four or more antennas to transmit the weighted signals.
 8. The apparatus of claim 7, wherein the beamforming matrix includes four or more rows that respectively correspond with the four or more antennas.
 9. The apparatus of claim 6, wherein the first and second circuitry are programmable.
 10. A method comprising: receiving, at a base station, a feedback transmission from a mobile station, the feedback transmission including a first codebook index and a second codebook index; determining a beamforming matrix based on the first and second codebook indices; weighting data signals based on the beamforming matrix; and transmitting the weighted data signals, wherein the first codebook index is associated with a first quantization error, the second codebook index is associated with a second quantization error, the second quantization error is less than the first quantization error, and the method further comprises: determining a first beamforming matrix component based on the first codebook index; determining a second beamforming matrix component based on the second codebook index; and determining the beamforming matrix based on the first and second beamforming matrix components.
 11. The method of claim 10, further comprising: transmitting the weighted data signals by four or more antennas.
 12. One or more non-transitory computer-readable media having instructions that, when executed by one or more processors, cause a mobile station to: determine, based on channel conditions, a desired beamforming matrix to be used, by a base station, to transmit data to the mobile station in one or more streams; determine first and second codebook indices to be used in conjunction with one another to identify the desired beamforming matrix; and subsequent to said determination of the first and second codebook indices, transmit the first and second codebook indices to the base station, wherein the first codebook index is associated with a first quantization error, the second codebook index is associated with a second quantization error, the second quantization error is less than the first quantization error, the first codebook index corresponds to a first beamforming matrix component, the second codebook index corresponds to a second beamforming matrix component, and the beamforming matrix corresponds to the first and second beamforming matrix components.
 13. The one or more computer-readable media of claim 12, wherein the desired beamforming matrix includes beamforming coefficients to be applied to frequency-domain signals in one or more streams to be transmitted to the mobile station.
 14. The one or more computer-readable media of claim 12, wherein the instructions, when executed, further cause the mobile station to: receive the one or more streams by one or more antennas of the mobile station.
 15. An apparatus to be employed in a mobile station, the apparatus comprising: first circuitry to: determine a desired beamforming matrix for downlink transmissions; determine first and second codebook indices to identify the desired beamforming matrix; and second circuitry to: transmit, in a feedback transmission, the first and second codebook indices, wherein the first codebook index is associated with a first quantization error, the second codebook index is associated with a second quantization error, the second quantization error is less than the first quantization error, the first codebook index corresponds to a first beamforming matrix component, the second codebook index corresponds to a second beamforming matrix component, and the beamforming matrix corresponds to the first and second beamforming matrix components.
 16. The apparatus of claim 15, further comprising: a plurality of antennas to receive downlink transmissions weighted based on the desired beamforming matrix.
 17. The apparatus of claim 15, further comprising: a system on a chip including the first and second circuitry.
 18. A method comprising: determining a channel matrix that represents conditions of a channel between a base station and a mobile station; determining a beamforming matrix based on the channel matrix; determine first and second codebook indices to identify the beamforming matrix; and transmit a feedback transmission to the base station that includes the first and second codebook indices, wherein the first codebook index is associated with a first quantization error, the second codebook index is associated with a second quantization error, the second quantization error is less than the first quantization error, the first codebook index corresponds to a first beamforming matrix component, the second codebook index corresponds to a second beamforming matrix component, and the beamforming matrix corresponds to the first and second beamforming matrix components.
 19. The method of claim 18, further comprising: receiving one or more streams by a plurality of antennas, wherein the one or more streams are beamformed based on the beamforming matrix. 